package main

import "fmt"

func main() {
	// make() 返回的map其实是一个指针
	persons := make(map[string]int)
	persons["张三"] = 19
	//mp := &persons
	fmt.Printf("原始map的内存地址是：%p\n", persons) // persons本身就是一个指针
	fmt.Printf("原始map的内存地址是：%p\n", &persons)
	modifyMap(persons)
	fmt.Println("map值被修改了，新值为:", persons)
}

// 这个其实就相当于(p *hmap)
// Go语言通过make函数，字面量的包装，为我们省去了指针的操作，让我们可以更容易的使用map。
// 这里的map可以理解为引用类型，但是引用类型不是传引用。
func modifyMap(p map[string]int) {
	fmt.Printf("函数里接收到map的内存地址是：%p\n", p)
	fmt.Printf("函数里接收到map的内存地址是：%p\n", &p)
	p["张三"] = 20
}
